﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using BusinessObjects;

namespace DataAccess.SqlServer
{
    public class SqlServerLoaiNhanVien: ILoaiNhanVien
    {
        public LoaiNhanVien GetLoaiNhanVien(int oid)
        {
            string sql = @" SELECT MaQuanLy, TenLoaiNhanVien 
                            FROM LoaiNhanVien
                            WHERE Oid = @oid";
            SqlParameter param = new SqlParameter("@oid", oid);

            DataRow row = DataProvider.GetDataRow(sql, param);

            string maQuanLy = row["MaQuanLy"].ToString();
            string tenLoaiNhanVien = row["TenLoaiNhanVien"].ToString();

            LoaiNhanVien loainhanvien = new LoaiNhanVien()
            {
                Oid = oid,
                MaQuanLy = maQuanLy,
                TenLoaiNhanVien = tenLoaiNhanVien
            };

            return loainhanvien;
        }

        public List<LoaiNhanVien> GetListLoaiNhanVien()
        {
            string sql = @" SELECT Oid, MaQuanLy, TenLoaiNhanVien 
                            FROM LoaiNhanVien";

            DataTable dt = DataProvider.GetDataTable(sql);
            List<LoaiNhanVien> list = new List<LoaiNhanVien>();

            foreach (DataRow row in dt.Rows)
            {
                int oid = int.Parse(row["Oid"].ToString());
                string maQuanLy = row["MaQuanLy"].ToString();
                string tenLoaiNhanVien = row["TenLoaiNhanVien"].ToString();

                LoaiNhanVien loainhanvien = new LoaiNhanVien()
                {
                    Oid = oid,
                    MaQuanLy = maQuanLy,
                    TenLoaiNhanVien = tenLoaiNhanVien
                };
                list.Add(loainhanvien);
            }
            return list;
        }

        public int Insert(LoaiNhanVien obj)
        {
            string sql = @" Insert into LoaiNhanVien(MaQuanLy, TenLoaiNhanVien)
                            Values(@MaQuanLy, @TenLoaiNhanVien)";

            SqlParameter[] param = {
                                       new SqlParameter("@MaQuanLy", obj.MaQuanLy),
                                       new SqlParameter("@TenLoaiNhanVien", obj.TenLoaiNhanVien)
                                   };

            return (DataProvider.Insert(sql, true, param));
            
        }

        public int Update(LoaiNhanVien obj)
        {
            string sql = @" Update LoaiNhanVien
                            Set MaQuanLy = @MaQuanLy,
                                TenLoaiNhanVien = @TenLoaiNhanVien
                            Where Oid = @Oid";
            SqlParameter[] param = {
                                       new SqlParameter("@Oid", obj.Oid),
                                       new SqlParameter("@MaQuanLy", obj.MaQuanLy),
                                       new SqlParameter("@TenLoaiNhanVien", obj.TenLoaiNhanVien)
                                   };
            return DataProvider.Update(sql, param);

        }

        public int Delete(LoaiNhanVien obj)
        {
            string sql = @" Delete From LoaiNhanVien Where Oid = @Oid";
            SqlParameter param = new SqlParameter("@Oid", obj.Oid);
            return DataProvider.Update(sql, param);
        }


        public int Save(LoaiNhanVien obj)
        {
            throw new NotImplementedException();
        }
    }
}
